/*
 * Copyright 2025 KylinSoft Co., Ltd.
 *
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <https://www.gnu.org/licenses/>.
 */

import "../childwindow"
import QtQml 2.15
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import org.ukui.quick.items 1.0 as UkuiItems
import org.ukui.quick.platform 1.0

Item {
    id: external

    property string uri: ""
    property string name: ""
    property bool launchSubConfig: false
    property alias labelText: label.text
    property int itemIndex: -1
    property bool enableBackground: true
    property string currentText: ""
    property int layoutMargins: 0

    signal externalConfigChanged(string uri, string name)

    UkuiItems.StyleBackground {
        anchors.fill: parent
        useStyleTransparency: false
        visible: enableBackground
    }

    RowLayout {
        spacing: 0
        anchors.fill: parent
        anchors.leftMargin: layoutMargins
        anchors.rightMargin: layoutMargins

        UkuiItems.StyleText {
            id: label

            elide: Qt.ElideRight
            Layout.alignment: Qt.AlignLeft
            Layout.fillWidth: true
        }

        Button {
            id: control

            Layout.alignment: Qt.AlignRight
            implicitHeight: 36
            implicitWidth: 90
            text: {
                qsTr("Setting");
            }
            onClicked: {
                externalConfigChanged(uri, name);
            }

            HoverHandler {
                id: hoverHandler
            }

            background: UkuiItems.Background {
                radius: 4
                anchors.fill: parent
                color: control.pressed ? Theme.button() : hoverHandler.hovered ? Theme.midLight() : Theme.button()
                border.color: control.activeFocus ? Theme.highlight() : "transparent"
                border.width: 2
            }

        }

    }

}
